<?php
/**
 * @package payma_svn
 * @subpackage package_name
 * @author Ricardo Santillán Reyes
 * @copyright (c) Instituto Tecnológico de Jiquilpan
 * @license Vea LICENCIA en el directorio raiz de este proyecto
 * @date Junio-Septiembre 2008
 * 
 */

class ManejadorEnlaces{
	/** @var object El objeto de la base de datos */
	var $_bd = null;
	/** @var array Arreglo con los menus ordenados por posicion */
	var $_enlaces = null;
	
	function ManejadorEnlaces(){
		$this->_bd =& MainBaseDatos::getMainBaseDatos();
        $this->initEnlaces();
	}
	
	/**
	 * Obtiene una instancia de esta clase
	 * @return object
	 */
	static function &getManejadorEnlaces(){
		static $instancia;
		if(!is_object($instancia)) $instancia = new ManejadorEnlaces();
		return $instancia;
	}
	
	function initEnlaces(){
		global $opcion;
		$usActual = Clases::get('usuarioActual');
		;
		$sql = "SELECT En_Nombre,En_Enlace,En_Modulo,En_Posicion,En_Niveles FROM #__enlaces";
		$this->_bd->consultaPrefijo($sql);
		//die($this->_bd->getConsulta());
		$enlaces = $this->_bd->loadListaObjetos();
		foreach ($enlaces as $enlace){
			$niveles = split(',',$enlace->En_Niveles);
			if(in_array($usActual->Id_Nivel,$niveles) || $enlace->En_Modulo == $opcion
				|| in_array(5,$niveles))
				$this->_enlaces[$enlace->En_Posicion][] = $enlace;
		}
	}
	
	/**
	 * Obtiene los enlaces de determinada posicion:
	 * izquierda, derecha, arriba y abajo
	 * @param $posicion
	 * @return array Los enlaces de la posicion especificada
	 */
	function getEnlaces($posicion = 'izquierda'){
		if (isset($this->_enlaces[$posicion] )) 
			$enlaces = $this->_enlaces[$posicion];
    	else
			$enlaces = array();
		return $enlaces;
	}
	
	/**
	 * Genera el codigo Html de los enlaces
	 * @param $posicion Posicion de los enlaces (arriba, abajo, izquierda, derecha)
	 * @param $orientacion Orientacion de los enlaces (horizontal, vertical)
	 * @return String El codigo Html con los enlaces
	 */
	function getEnlacesHtml($posicion, $orientacion){
		//Creamos una lista con los elementos
		$enlaces = $this->getEnlaces($posicion);
		if(count($enlaces) > 0){
			$retorno = '';
			for($en=0;$en<count($enlaces);$en++){
				if(strtolower($orientacion) == 'vertical')
					$retorno.= '<li><a href="' . Clases::get('sitio_vivo') . '/' . $enlaces[$en]->En_Enlace . '">' . $enlaces[$en]->En_Nombre . "</a></li>\n";
				else if(strtolower($orientacion) == 'horizontal')
					$retorno.= '<td><a href="' . Clases::get('sitio_vivo') . '/' . $enlaces[$en]->En_Enlace . '">' . $enlaces[$en]->En_Nombre . "</a></td>\n";
			}
			if(strtolower($orientacion) == 'vertical') return $retorno;
			return $retorno;
		}
		return '';
	}
}

?>
